python3.9/hello-pt/{{ cookiecutter.project_name }}/template.yaml (54 lines of code) (raw):
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
{{ cookiecutter.project_name }}
Powertools for AWS Lambda (Python) example
Globals: # https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy-globals.html
Function:
Timeout: 5
MemorySize: 128
Runtime: python3.9
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function # More info about Function Resource: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html
Properties:
Handler: app.lambda_handler
CodeUri: hello_world
Description: Hello World function
{%- if cookiecutter.architectures.value != []%}
Architectures:
{%- for arch in cookiecutter.architectures.value %}
- {{arch}}
{%- endfor %}
{%- endif %}
{%- if cookiecutter["Powertools for AWS Lambda (Python) Tracing"] == "enabled"%}
Tracing: Active
{%- endif %}
Events:
HelloPath:
Type: Api # More info about API Event Source: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html
Properties:
Path: /hello
Method: GET
{%- if cookiecutter["Powertools for AWS Lambda (Python) Tracing"] == "enabled" or cookiecutter["Powertools for AWS Lambda (Python) Logging"] == "enabled" %}
# Powertools for AWS Lambda (Python) env vars: https://awslabs.github.io/aws-lambda-powertools-python/#environment-variables
Environment:
Variables:
{%- if cookiecutter["Powertools for AWS Lambda (Python) Tracing"] == "enabled" or cookiecutter["Powertools for AWS Lambda (Python) Metrics"] == "enabled"%}
POWERTOOLS_SERVICE_NAME: PowertoolsHelloWorld
{%- endif %}
{%- if cookiecutter["Powertools for AWS Lambda (Python) Metrics"] == "enabled"%}
POWERTOOLS_METRICS_NAMESPACE: Powertools
{%- endif %}
{%- if cookiecutter["Powertools for AWS Lambda (Python) Logging"] == "enabled"%}
LOG_LEVEL: INFO
{%- endif %}
{%- endif %}
Tags:
LambdaPowertools: python
Outputs:
HelloWorldApi:
Description: "API Gateway endpoint URL for Prod environment for Hello World Function"
Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello"
HelloWorldFunction:
Description: "Hello World Lambda Function ARN"
Value: !GetAtt HelloWorldFunction.Arn